GNUSH v0703

October 1st, 2007

KPIT Cummins Infosystems Limited is now releasing GNUSH v0703; a cross compiler toolchain
for Renesas (formerly Hitachi and Mitsubishi) SH series of micro controllers.

SALIENT FEATURES:

1.

GNUSH v0703 is based on gcc-4.2.1, binutils-2.17.90, newlib-1.15.0 and gdb-6.6 (released).
For details regarding patches applied to sources, refer to the FAQs.
http://www.kpitgnutools.com/phpmyfaq/index.php?sid=16957&aktion=artikel&rubrik=001005&id=42&lang=en

2.

Latest patches have been applied to the gcc, binutils and newlib sources.
For further information about the patches applied to the GNUSH toolchain,
please refer to the following link,
http://www.kpitgnutools.com/phpmyfaq/index.php?aktion=artikel&rubrik=007005&id=360&lang=en 

3.

Renesas has added 36 new instructions for its SH2A target. Many of these instructions were unimplemented in GCC. 20 of those new instructions have been implemented in GCC for this release. Along with this, 6 instructions (CLIPS, CLIPU, LDC, STC, LDBANK and STBANK) are also implemented "INLINE" for this release.

4. 

The KPIT HEW GNU Project Generator has been upgraded to 2.0. In this new PG, user is given a option to select the toolchain version during project creation.
Also user can set a target system for debugging by selecting a particular simulator. This selection will add the corresponding session and configuration in the project.

5.

HEW "Debug" and "Release" configurations have been made identical so that the initialized data will always be placed in ROM (LMA) and then copied from ROM to RAM (VMA) during start-up.

6.

Toolchain installer for Windows have been modified to incorporate Activation Code. In order to proceed with the installation using the installer, the user must enter the correct e-mail address and unique Activation code.

The user must be registered with KPIT GNU Tools and Support website in order to obtain the Activation code. Once registered, this code can be retrieved from user Profile page
http://www.kpitgnutools.com/updateCustomers.php  

7.

A consolidated PDF user guide for GNUSH toolchain is provided along with this toolchain. It includes information from GNU tools user manuals, migration guides, ABI specification, ELF/DWARF2 specifications, using inline assembly, building GNUSH toolchain etc. It is also available at    http://www.kpitgnutools.com

ABOUT GNUSH v0703:

Release version:

GNUSH v0703

Release Date:

October 1st, 2007

Platforms Supported:

Red Hat GNU/Linux v8.0 or later (or compatible distribution)
Windows NT/2000/XP

Language:

C, C++

Targets:

SH-1,

SH-2

SH-2A

SH-2E,

SH2-DSP,

SH-3,

SH-3E,

SH3-DSP

SH-4,

SH-4A

SH-4AL-DSP

Object File Format:

ELF


For free technical support register at http://www.kpitgnutools.com
For any feedback and suggestions contact http://www.kpitgnutools.com/feedback.php

CHANGES IN THIS RELEASE:

GCC:

1.

Renesas has added 36 new instructions for its SH2A target. Many of these instructions were unimplemented in GCC. 20 of those new instructions have been implemented in GCC for this release. These instructions are:
a. Bit Manipulation Instructions:- BCLR, BSET, NOTT, BAND, BANDNOT, BOR, BORNOT, BXOR, BLD, 

                                                  BLDNOT, BST.
b. Data Transfer Instructions:-  MOVML, MOVU, MOVRT, MOVI20S, PREF, RESBANK.
c. Branch Instructions:- JSR/N, RTS/N, RTV/N.
Along with this, six instructions (CLIPS, CLIPU, LDC, STC, LDBANK and STBANK) are also implemented "INLINE" for this release.

OPTIMIZED LIBRARIES:

1.

Separate header files are supplied with optimized library. These headers are placed in "<Installation dir>/<target>/<target>/optlibinc" folder. When building application that uses optimized libraries, following options must be passed while invoking GCC.

a. -nostdinc
    This options tells GCC(pre processor) to exclude standard paths while searching for include files.

b. -I "<Installation dir>/<target>/<target>/optlibinc"
    This option tells GCC(pre processor) to search include files in
    "<Installation dir>/<target>/<target>/optlibinc".

For example:
In Windows environment, if GNUSH toolchain is installed at
"C:\Program Files\Renesas\Hew\Tools\KPIT Cummins\GNUSH-ELF\v0703\sh-elf\bin" then user can use following command to build 'test.c'.

#sh-elf-gcc -nostdinc -I "C:\Program Files\Renesas\Hew\Tools\KPIT Cummins\GNUSH-ELF\v0703\

sh-elf\sh-elf\optlibinc" test.c -loptc -loptm -lgcc -loptc -o test.out

Similarly in UNIX/LINUX environment, if GNUSH M16C tool chain is installed at "/usr/share/gnush_v0703_elf-1/bin" then user can use following command to build 'test.c'.

#/usr/share/gnush_v0703_elf-1/bin/sh-elf-gcc -nostdinc
-I "/usr/share/gnush_v0703_elf-1/sh-elf/optlibinc/" test.c -loptc  -loptm -lgcc -loptc -o test.out

HEW (For Windows OS only):

1.

The KPIT HEW GNU Project Generator has been upgraded to 2.0. In this new PG, user is given a option to select the toolchain version during project creation. Also user can set a target system for debugging by selecting a particular simulator. This selection will add the corresponding session and configuration in the project.

2.

Upto v0702, HEW "Debug" and "Release" configurations were different. In "Debug", the initialized data was loaded at the VMA (in RAM) whereas in "Release" the initialized data was loaded at the LMA (in ROM) and the macro ROMSTART was used to copy data from ROM to the RAM addresses. v0703 onwards, HEW "Debug" and "Release" configurations have been made identical so that the
initialized data will always be placed in the ROM (LMA) and then copied from ROM to RAM (VMA) at start-up. The HEW loader has been modified to download sections at their LMA instead of VMA and the macro ROMSTART has been removed.
For further details please refer to the following link,
http://www.kpitgnutools.com/phpmyfaq/index.php?aktion=artikel&rubrik=001001&id=163&lang=en&highlight=ROMSTART&searchaktion=search&seite=1

3.

Double clicking on warnings/errors in header files did not open that particular line from the source code.

This bug has been fixed.

4.

When optimized libraries are used, the libraries header file paths are automatically changed under "Build->Compiler->Source" tab. Also "-nostdinc" option is passed under "Build->Compiler->common options".
However, when the "Use optimized libraries" option is selected or de-selected, user needs to open the 'Compiler Option' dialog box and click 'OK' to update include directory paths.

WINDOWS INSTALLERS:

1.

Toolchain installer for Windows have been modified to incorporate Activation Code. In order to proceed with the installation using the installer, the user must enter the correct e-mail address and the unique Activation code.
The user must be registered with the KPIT GNU Tools and Support website in order to obtain the Activation code. Once registered, this code can be retrieved from the user’s Profile page,
http://www.kpitgnutools.com/updateCustomers.php 

OTHER:

1.

The commonly used intrinsic inline functions are defined in the file "functions.h".
This file is added in the standard include paths. While using intrinsic functions, user can directly include functions.h.

(e.g. #include <functions.h>).

 

KNOWN PROBLEMS:

We intend to fix the known problems in our future releases.
We also release Maintenance Packs for critical bugs fixed in between releases.

SH-ELF:

Windows and GNU/Linux:

1.

Math libraries (excluding standard C library) with '-mrenesas' option are not working for SH2A-single CPU.

2.

For Newlib "fmod" function fails for SH2E (Big Endian), SH2A Single-Only (Big Endian), SH3E (Big Endian), SH4 Single-Only (Big Endian as well as Little Endian) and SH4A Single-Only (Big Endian as well as Little Endian) targets.

3.

For Optimized Libraries "LOG10,LOG, LDEXP and POW" functions fail for SH4 Single-Only (Little Endian) and SH4A Single-Only (Little Endian) targets.

HEW (For Windows OS only):

1.

Stack trace information is not available in HEW while debugging applications.

 NOTE:

Windows and GNU/Linux:

1. 

The optimized libraries are available along with the Newlib libraries in the toolchain and do not require to be downloaded separately.

2.

The optimized libraries ('liboptm.a' and 'liboptc.a') are not provided under GNU GPL. The source code of the optimized libraries is neither released nor available on request.

3.

Latest GDB and simulator provided with this toolchain release must be used with v0703 toolchain.

4.

GNUSH v0701 toolchain onwards can be used with HEW 4.02.00.022.

5.

GNUSH v0603 or older version toolchains cannot be used with HEW 4.02.00.022.